package com.briup.es.service;

import com.briup.es.domain.vo.BookDetailVO;
import com.briup.es.domain.vo.BookVO;

import java.util.List;
import java.util.Map;

public interface BookService {
    /**
     * 展示首页图书信息，只展示20本
     *
     * @return 首页数据
     */
    List<BookVO> showBooks();

    /**
     * 根据分类id查询图书信息
     *
     * @param id 分类id
     * @return List<BookVO> 图书信息
     */
    List<BookVO> findByCategory(Integer id);

    /**
     * 根据给定的关键词，模糊查询图书信息，
     * 关键词可以是 图书名称、图书作者、图书出版社
     *
     * @param query 关键词
     * @return List<BookVO> 根据条件查询出的图书信息
     */
    List<BookVO> searchBook(String query);

    /**
     * 根据id查询图书的详情信息，
     * 其中包括图书的栏目名称，
     * 及其图书是否被当前登录用户收藏
     *
     * @param id 图书id
     * @return 图书的详情信息
     */
    BookDetailVO queryById(Integer id);

    /**
     * 根据指定的图书与数量映射关系，
     * 修改图书表中对应图书的数量
     *
     * @param map 映射关系
     */
    void updateStoreNum(Map<Integer, Integer> map);
}
